﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.System.Web.Control.CheckMatches
 * 类型：       服务端输入校验类
 * 功能说明：   模式(正则表达式)不同校验类
 * 作者：       郭晓庆
 * 创建日期：   2007/07/10
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace Shpm.System.Web.Control
{
    public class CheckMatches : ComAbsChecker
    {
        /** 模式(正则表达式) */
        private String pattern = null;

        /**
         * 构造函数
         * @param value   输入值
         * @param pattern 模式(正则表达式)
         */
        public CheckMatches(String value, String pattern)
            : base(value)
        {
            this.pattern = pattern;
        }

        public CheckMatches(String value, String pattern, Shpm.System.Validator.ComAbsMsg msg)
            : base(value, msg)
        {
            this.pattern = pattern;
        }


        /**
         * 模式检查处理。
         * @param value 输入值
         * @return true:相同 / false:不同
         */
        protected override bool doCheck(String value)
        {

            // 未输入检查
            if (base.isEmpty(value))
            {
                return true;
            }

            if (this.pattern == null || this.pattern.Length == 0)
                // 模式没有指定的场合出错
                return false;

            // 模式检查

            return Regex.Matches(value, this.pattern).Count == 0 ? false : true;

        }

    }
}
